/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.ejb.endpointwebservice;

import java.util.List;
import javax.ejb.EJB;
import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebService;
import org.ejb.controlador.Credenciales;
import org.ejb.controlador.Login;
import org.ejb.controlador.servicioWeb.servicioWebController;
import org.ejb.negocio.JuegosFacade;
import org.ejb.persistencia.Binjuego;
import org.ejb.persistencia.Juegos;
import org.ejb.persistencia.Xmljuego;

/**
 *
 * @author MoisesAntonio
 */

@WebService
public class servicioWeb {
    
    @Inject
    servicioWebController servicio;
    
    /**
     * Este método realiza el login de los usuarios a través del servicio web.
     * @param nombre Nombre de usuario.
     * @param pass Contraseña del usuario.
     * @return Valor booleano indicando si el login es correcto.
     */
    @WebMethod
    public boolean logIn(String nombre, String pass){
        servicio.getCredencial().setUsername(nombre);
        servicio.getCredencial().setPassword(pass);
        servicio.getLogin().doLogin();
        return servicio.getLogin().isLoggedInUser();
    }
    
    @WebMethod
    public List<Juegos> listarJuegos(){
        if(servicio.getLogin().isLoggedInUser()){
            return servicio.listarJuegos();
        }
        return null;
    }
    
    @WebMethod
    public int crearJuego(String NombreJuego, String TipoDeJuego, boolean publicado, int EdadRecomendada){
        if(servicio.getLogin().isLoggedInUser()){
            servicio.getCurrent().setNombreJuego(NombreJuego);
            servicio.getCurrent().setTipo(TipoDeJuego);
            servicio.getCurrent().setPublicado(publicado);
            servicio.getCurrent().setEdad(EdadRecomendada);
            return servicio.crearJuego();
        }
        return -2;
    }
    
    @WebMethod
    public int cargarJuego(int id){
        if(servicio.getLogin().isLoggedInUser()){
            servicio.getCurrent().setIdJuego(id);
            return servicio.cargarJuego();
        }
        return -2;
    }
    
    @WebMethod
    public boolean subirXmlJuego(){
        
        return false;
    }
    
    @WebMethod
    public boolean subirBin(){
        
        return false;
    }
    
    @WebMethod
    public boolean actualizarXml(){
        
        return false;
    }
    
    @WebMethod
    public boolean actualizarBin(){
        
        return false;
    }
    
    @WebMethod
    public List<Xmljuego> cargarXml(){
        if(servicio.getLogin().isLoggedInUser()){
            return servicio.cargarXmlJuego();
        }
        return null;
    }
    
    @WebMethod
    public List<Binjuego> cargarBin(){
        if(servicio.getLogin().isLoggedInUser()){
            return servicio.cargarBinJuego();
        }
        return null;
    }
    
    @WebMethod
    public boolean publicarJuego(boolean publico){
        if(servicio.getLogin().isLoggedInUser()){
            
        }
        return false;
    }
    
    /*
    @WebMethod
    public boolean eliminarJuego(){
        if(login.isLoggedInUser()){
            
        }
        return false;    
    }
    */
    
}
